package com.easylinkin.linkappapi.calculaterule.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.easylinkin.linkappapi.calculaterule.entity.CalculateConfig;
import java.util.List;

/**
 * <p>
 * 计算配置 服务类
 * </p>
 *
 * @author TongJie
 * @since 2020-06-17
 */
public interface CalculateConfigService extends IService<CalculateConfig> {

    void add(CalculateConfig calculateConfig);

    /**
     * 根据条件查询计算配置所有
     */
    List<CalculateConfig> getCalculateConfigs(CalculateConfig calculateConfig);

    /**
     * 查询计算配置
     *
     * @param id 主键
     * @return 查询结果对象
     */
    CalculateConfig getCalculateConfig(String id);

    /**
     * 根据条件查询计算配置 分页
     */
    IPage<CalculateConfig> getCalculateConfigsPage(Page page, CalculateConfig customQueryParams);

    void updateCalculateConfig(CalculateConfig calculateConfig);

    /**
     * 修改状态
     * @param calculateConfig vo
     */
    void updateStatus(CalculateConfig calculateConfig);

    /**
     * 批量删除
     */
    void deleteBatch(List<CalculateConfig> calculateConfigList);

    /**
     * 根据数据源id 和 计算配置的类型查询
     * @param dataSourceId 数据源id
     * @param type 计算配置类型
     * @return 列表
     */
    List<CalculateConfig> getCalculateConfigs(String dataSourceId, String type);
}


